﻿
package planningsbord_v4.gui{

	import planningsbord_v4.model.*;
	import app.core.action.RotatableScalable;
	import flash.text.*;

	/* 
	Met de class PlanningsKaart kunnen nieuwe planningskaarten
	voor het planningsbord gemaakt worden.
	*/
	public class PlanningsKaart extends RotatableScalable {

		private var patientenkaart:PatientenKaart;
		
		private var _x:Number;
		private var _y:Number;
		private var _width:Number;
		private var _height:Number;
		private var naamLabel:TextField = new TextField();
		private var fontFormat:TextFormat = new TextFormat();
		private var gepakt:Boolean = false;

		/*
		Constructor voor een object van de PlanningsKaart class.
		Een planningskaart wordt op basis van de gegevens van een PatientenKaart gemaakt.
		*/
		public function PlanningsKaart( deKaart:PatientenKaart, xPos:Number, yPos:Number, breedte:Number, hoogte:Number ):void {
			patientenkaart = deKaart;
			_x = xPos;
			_y = yPos;
			_width = breedte;
			_height = hoogte;
			noScale = true;
			noRotate = true;
			
			fontFormat.size = 20;
			fontFormat.align = "center";
			
			tekenKaart();
		}
		/* Teken de planningskaart, geef de positie en breedte en hoogte mee als parameter*/
		private function tekenKaart():void {
			// teken body
			this.graphics.clear();
			this.graphics.lineStyle(1,0x000000,1);
			this.graphics.beginFill(0x00CCFF);
			this.graphics.drawRect(_x, _y, _width, _height);
			this.graphics.endFill();
			alpha = 1;
			
			// naamLabel toevoegen
			naamLabel.text = patientenkaart.getPatient().getNaam();
			naamLabel.setTextFormat(fontFormat);
			naamLabel.x = _x-1;
			naamLabel.y = _y-1;
			naamLabel.height = _height+2
			naamLabel.width = _width+2;
			naamLabel.selectable = false;			
			addChild(naamLabel);			
		}
		/* Geeft de patientenkaart die bij de planningskaart hoort terug */
		public function getPatientenKaart():PatientenKaart {
			return patientenkaart;
		}
		public function get isGepakt():Boolean {
			return gepakt;
		}
		public function set isGepakt(nieuweWaarde:Boolean):void {
			gepakt = nieuweWaarde;
		}
		
		/* De volgende functies overschrijven de functies van de Sprite class*/
		/*
		override public function get width():Number {
			return _width;
		}
		override public function set width(nieuweWaarde:Number):void {
			_width = nieuweWaarde;
			tekenKaart();
		}
		override public function get height():Number {
			return _height;
		}
		override public function set height(nieuweWaarde:Number):void {
			_height = nieuweWaarde;
			tekenKaart();
		}
		override public function get x():Number {
			return _x;
		}
		override public function set x(nieuweWaarde:Number):void {
			_x = nieuweWaarde;
			tekenKaart();
		}
		override public function get y():Number {
			return _y;
		}
		override public function set y(nieuweWaarde:Number):void {
			_y = nieuweWaarde;
			tekenKaart();
		}
		*/
		/* *********************************************************************** */
		
	}
}